package com.fourforfo.fourmall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fourforfo.common.utils.PageUtils;
import com.fourforfo.fourmall.product.entity.SkuInfoEntity;
import com.fourforfo.fourmall.product.vo.ProductItemVO;
import com.fourforfo.fourmall.product.vo.spu.Skus;

import java.util.List;
import java.util.Map;

/**
 * sku信息
 *
 * @author fourforfo
 * @email fourforfo@gmail.com
 * @date 2022-06-15 21:04:46
 */
public interface SkuInfoService extends IService<SkuInfoEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 获取商品详情页ProductItem
     * @return
     */
    ProductItemVO getProductItem(Long skuId);

    /**
     * sku的基本信息 pms_sku_info
     * @param skuInfoEntity
     */
    void saveSkusInfo(SkuInfoEntity skuInfoEntity);

    /**
     * 1. 查出当前的spuId对应的所有sku信息
     * @param spuId
     */
    List<SkuInfoEntity> getSkusBySpuId(Long spuId);

    /**
     * 秒杀服务根据具体活动下的skuIds获取对应商品详情信息
     *  根据value中的skuIds查询相应sku信息，并根据key上的sessionId进行分组
     * @param idMaps
     * @Result 外层key是sessionId，里层是skuId:skuInfoEntity样式的map
     */
    Map<Long, Map<Long, SkuInfoEntity>> listSkuInfoBySkuIdGroupBySessionId(Map<Long, List<Long>> idMaps);
}

